import React, { useEffect, useState } from "react"
const useMyHook = (initialValue) => {
const [val, setVal] = useState(initialValue)
const setMyValue = (newValue) => {
setVal({
...val,
...newValue,
})
}
let myValue = val
return [myValue, setMyValue]
}
const useMyEffect = (name) => {
useEffect(() => {
console.log(`${name} says hello`)
}, [])
}
export default function Demo() {
useMyEffect("Jonathan")
const [myValue, setMyValue] = useMyHook({
x: 0,
y: 99,
})
const handle = function () {
setMyValue({ x: myValue.x + 1 })
}
return (
<div>
<div>x:{myValue.x}</div>
<div>y:{myValue.y}</div>
<button onClick={handle}>click me</button>
</div>
)
}